DJI SOS — 许可证、致谢与源代码
====================

DJI SOS: Copyright (C) 2026 Hansley. GPL-3.0-or-later.
本软件是自由软件，可按照 GNU GPL 第 3 版或更新版本的条款再分发和修改，
不提供任何担保。许可证全文见 LICENSE；详细说明见 LICENSING.en.md（英文）。

完整源代码可通过“帮助”菜单中的“显示完整源代码…”离线查看。ZIP 文件位于
应用资源中的 SourceCode 目录，包含可修改的 Swift 代码、脚本、与构建准确对应的
第三方源代码、相应许可证和构建配方。请参阅归档中的 REBUILD.en.md（英文）。
libvmaf 归档中已移除 9 个旧的、未使用的预编译 MATLAB 模块；源代码、许可证
和构建脚本均予以保留。此项处理及上游原始归档的校验值均有文档记录。

DJI SOS 在本地处理视频。各工具以本地进程运行；配置目录也来自 djifix 的数组，
由 Swift 引擎直接使用。修复视频不需要网络连接、Homebrew 或 Python。

djifix
------
Copyright (c) 2014–2026 Live Networks, Inc.
版本 2026-10-31; GPL-3.0-or-later.
官方项目: https://djifix.live555.com/
完整且未经修改的 C 源代码: ThirdParty/djifix/djifix.c.
许可证: ThirdParty/djifix/COPYING.GPLv3.
Resources/Profiles 中的配置由此 GPLv3+ 源代码派生。
提取过程及排除项见 Scripts/generate_profiles.py。
编译: Apple clang, -O2 -arch arm64 -mmacosx-version-min=15.0.

untrunc
-------
Copyright 2010 Federico Ponchio 及贡献者; GPL-2.0-or-later.
原始项目: https://github.com/ponchio/untrunc
由 anthwlock 维护的分支: https://github.com/anthwlock/untrunc
提交: 9d86ec9ef2ffed1bf8131abe80742c0574db52b6
完整源代码: ThirdParty/untrunc/untrunc-source.tar.gz.
包含由 AtomicParsley 派生的代码：Copyright 2006 puck_lock，
GPL-2.0-or-later（源代码归档中的 src/AP_AtomDefinitions.h）。
详细声明保留在各个源文件的文件头中。
本地编译：Apple clang++、C++17、arm64、macOS 15.0，
使用 FFmpeg 8.1。命令和输出见 ThirdParty/tool-build-commands.json
及 ThirdParty/tool-build.log。上游源代码未经修改。

FFmpeg 与 ffprobe
----------------
FFmpeg 开发者及贡献者。 https://ffmpeg.org/
版本 8.1，Homebrew 软件包 8.1_1，arm64；此构建启用了
--enable-gpl --enable-version3，适用 GPL-3.0-or-later。
准确对应的源代码：ffmpeg-8.1.tar.xz。4 份 GPL/LGPL 文本、LICENSE.md、
构建配方、构建记录及 SPDX 清单位于 ThirdParty/libraries/ffmpeg-8.1_1/。
实际使用的 configure 选项见 ThirdParty/ToolsSmokeTests.json。
本软件部分基于 Independent JPEG Group 的工作成果。
This software is based in part on the work of the Independent JPEG Group.

再分发的非系统库
--------
组件              版本      上游许可证
dav1d             1.5.3     BSD-2-Clause
LAME              3.100     LGPL-2.0-or-later
libvmaf           3.1.0     BSD-2-Clause-Patent
libvpx            1.16.0    BSD-3-Clause
OpenSSL           3.6.2     Apache-2.0
Opus              1.6.1     BSD-3-Clause
SVT-AV1           4.1.0     BSD-3-Clause 及部分 BSD-2-Clause
x264              r3222     GPL-2.0-or-later
x265              4.2       GPL-2.0-or-later

ThirdParty/libraries/ 中的每个目录均保留原始声明、版权声明、许可证、
可获得的作者名单、准确对应的 Homebrew 构建配方、构建记录及 SPDX 清单。
源代码 ZIP 中的完整归档也保留文件及子项目内部的许可证。Homebrew 及其
构建配方采用 BSD-2-Clause；许可证保留在 ThirdParty/Homebrew-LICENSE.txt。
这些是构建配方，用户运行应用不依赖 Homebrew。

源代码与转换处理
--------
ZIP 中的 ThirdParty/CorrespondingSources/manifest.json 将各份源代码与其
版本、URL、SHA-256 校验值及二进制文件对应起来。9 个发布版本的上游归档
已与所保留构建配方中的 SHA-256 校验值核对。x264 的准确 Git 提交及所需的
版本信息均予以保留，也包含 djifix 和 untrunc。libvmaf 归档是上述已移除
9 个未使用 MATLAB 模块的派生版本，此处理已有文档说明；其元数据区分了
上游原始归档的校验值与移除模块后的归档校验值。

LAME 构建配方从 include/libmp3lame.sym 中移除了 lame_init_old；
此修改记录于 REBUILD-DEPENDENCIES.md。保留的其他构建配方不会对
这些发布版本的代码应用补丁。

package_tools.py 复制二进制文件，将非系统路径替换为 @loader_path，
移除构建机器的 rpaths，并对副本进行临时签名（ad hoc）。
Scripts/notarize_release.py 为直接分发添加带时间戳的 Developer ID 签名。
build.sh 将代码放入 Contents/Helpers 和 Contents/Frameworks，
将配置目录放入 Contents/Resources/Profiles。这些 Mach-O 修改是对 Homebrew
二进制文件进行的唯一额外转换，不会修改系统中已安装的软件。
Resources/ToolsManifest.json 记录依赖关系图、原始及捆绑后的校验值、
架构与目标操作系统。

载荷包含 21 个 Mach-O 文件，共 39,406,880 字节。
Apple 的库和框架仍由 macOS 提供。

此版本面向 Apple Silicon（arm64），要求 macOS 15.0 或更新版本。
此版本的组件已使用带安全时间戳的 Developer ID 签名。
最终公证状态记录在分发目录中。

DJI SOS 是独立应用，不代表 DJI。
分发的源代码中不包含任何个人视频文件。
